package modele;

import java.io.Serializable;
import java.util.Date;

@SuppressWarnings("serial")
public class Match implements Serializable, Comparable {
	private Equipe equipe1;
	private Equipe equipe2;
	private Date date;
	private String lieu;
	private Integer scoreEquipe1;
	private Integer scoreEquipe2;
	
	public Match(Equipe equipe1, Equipe equipe2, Date date, String lieu,
			Integer scoreEquipe1, Integer scoreEquipe2) {
		super();
		this.equipe1 = equipe1;
		this.equipe2 = equipe2;
		this.date = date;
		this.lieu = lieu;
		this.scoreEquipe1 = scoreEquipe1;
		this.scoreEquipe2 = scoreEquipe2;
	}
	
	public String toString() {
		return equipe1.getNom()+ " "+scoreEquipe1+ "-" + scoreEquipe2+" "+equipe2.getNom();
	}
	public Equipe getEquipe1() {
		return equipe1;
	}
	public void setEquipe1(Equipe equipe1) {
		this.equipe1 = equipe1;
	}
	public Equipe getEquipe2() {
		return equipe2;
	}
	public void setEquipe2(Equipe equipe2) {
		this.equipe2 = equipe2;
	}
	public Date getDate() {
		return date;
	}
	public void setDate(Date date) {
		this.date = date;
	}
	public String getLieu() {
		return lieu;
	}
	public void setLieu(String lieu) {
		this.lieu = lieu;
	}
	public Integer getScoreEquipe1() {
		return scoreEquipe1;
	}
	
	public Integer getScoreEquipe2() {
		return scoreEquipe2;
	}
	
	public void setScoreEquipe1(Integer scoreEquipe1) {
		this.scoreEquipe1 = scoreEquipe1;
	}
	
	public void setScoreEquipe2(Integer scoreEquipe2) {
		this.scoreEquipe2 = scoreEquipe2;
	}
	
	public boolean isSameMatch(Match autre) {
		return (autre.getDate().equals(date) && 
				((autre.getEquipe1().getNom().equals(equipe1.getNom()) && autre.getEquipe2().getNom().equals(equipe2.getNom())) || 
						(autre.getEquipe1().getNom().equals(equipe2.getNom()) && autre.getEquipe2().getNom().equals(equipe1.getNom()))));
	}
	
	/**
	 * Il permet de trier les matchs par ordre chronologique
	 */
	public int compareTo(Object autre) {
		Match autreMatch = (Match)autre;
		if(autreMatch.getDate().after(this.date))
			return 1;
		else
			return -1;
	}
	
}
